<?php

/**
 * Subclass for representing a row from the 'dato_estudiante' table.
 *
 *
 *
 * @package lib.model
 */
class DatoEstudiante extends BaseDatoEstudiante
{
	public $nombre = '';
	public $apellido = '';
	public $fecnac = '';
	public $direccionhab = '';
	public $telefonohab = '';
	public $telmovil = '';

  private $criteriaEstudiantesCondicion = null;
  private $nombreEstudiante = '';
  private $nombreCarrera = '';
  private $semestre = '';
  private $condicion = '';

 public function __toString()
	{
		return 'C.I: '.$this->getCedula().' - Nombre: '.$this->getNombreEstudiante().' - Carrera: '.$this->getNombreCarrera().' - Materia: '.$this->getCondicion();
	}

  public function getNombreEstudiante()
  {

  	    if($this->nombreEstudiante == '')
   	    {
  	    $c = new Criteria();
		$c->add(EstudiantePeer::CEDULA,$this->getCedula());
		$objEstudiante = EstudiantePeer::doSelectOne($c);
		$nombre   = $objEstudiante->getNombre();
		$apellido = $objEstudiante->getApellido();
  	    }
  	    $this->nombreEstudiante = $nombre.' '.$apellido;

		return $this->nombreEstudiante;

  }

 public function getNombreCarrera()
  {

  	    if($this->nombreCarrera == '')
   	    {
  	    $c = new Criteria();
		$c->add(EstudiantePeer::CEDULA,$this->getCedula());
		$objEstudiante = EstudiantePeer::doSelectOne($c);
		$idCarr = $objEstudiante->getCfCarrera();
		$c2 = new Criteria();
		$c2->add(CarreraPeer::CP_CARRERA,$idCarr);
		$this->nombreCarrera = CarreraPeer::doSelectOne($c2)->getNombre();
  	    }

		return $this->nombreCarrera;

  }

  public function getSemestre()
  {

  	    if($this->semestre == '')
   	    {
  	    $c = new Criteria();
		$c->add(EstudiantePeer::CEDULA,$this->getCedula());
		$objEstudiante = EstudiantePeer::doSelectOne($c);
		$idEst = $objEstudiante->getCpEstudiante();
		$c2 = new Criteria();
		$c2->add(DatoAcademicoPeer::CF_ESTUDIANTE,$idEst);
		$this->semestre = DatoAcademicoPeer::doSelectOne($c2)->getSemestre();
  	    }

		return $this->semestre;

  }


 public function getCriteriaEstudiantesCondicion($decanato)
	 {
	 	if ($this->criteriaEstudiantesCondicion == null)
	 	{
	 		$c2 = new Criteria();
	 		$c2->add(CarreraPeer::CF_DECANATO,$decanato);
	 		$c2->addJoin(CarreraPeer::CP_CARRERA,EstudiantePeer::CF_CARRERA);
	 		$objsEstDec = EstudiantePeer::doSelect($c2);

	 		$condicion = 2;
	 		$c3 = new Criteria();
	 		$c3->add(MateriasEstudiantePeer::CONDICION,$condicion,Criteria::GREATER_THAN);
	 		$c3->addJoin(MateriasEstudiantePeer::CF_ESTUDIANTE, EstudiantePeer::CP_ESTUDIANTE);
			$objsEstCon = EstudiantePeer::doSelect($c3);

			$cedulasD = array();
			$cedulasC = array();
	 	    $k = 0;
	 	    foreach ($objsEstDec as $objE)
	 	    {
	 	    	$c4 = new Criteria();
	 	    	$ced = $objE->getCedula();
	 	    	$c4->add(DatoEstudiantePeer::CEDULA,$ced);
	 	    	$objDatoEstudiante = DatoEstudiantePeer::doSelectOne($c4);
	 	    	$cedula = $objDatoEstudiante->getCedula();

	 	    	$cedulasD[$k]=$cedula;
	 	    	$k ++;
	 	    }

			$k = 0;
			foreach ($objsEstCon as $objE)
	 	    {
	 	    	$c4 = new Criteria();
	 	    	$ced = $objE->getCedula();

	 	    	$c4->add(DatoEstudiantePeer::CEDULA,$ced);
	 	    	$objDatoEstudiante = DatoEstudiantePeer::doSelectOne($c4);
	 	    	$cedula = $objDatoEstudiante->getCedula();

	 	    	$cedulasC[$k]=$cedula;
	 	    	$k ++;
	 	    }


	 		$c = new Criteria();
	 	    $arrAE = AsignarEstPeer::doSelect($c);

	 	    $ids = array();
	 	    $i = 0;
	 	    foreach ($arrAE as $objAE)
	 	    {
	 	    	$ids[$i]=$objAE->getEstudianteId();
	 	    	$i ++;
	 	    }

	 	    $c1 = new Criteria();

			$c1->add(DatoEstudiantePeer::CEDULA, $cedulasD, Criteria::IN);
			$c1->add(DatoEstudiantePeer::CEDULA, $cedulasC, Criteria::IN);
	 	    $c1->add(DatoEstudiantePeer::ID, $ids, Criteria::NOT_IN);
			$c1->addAscendingOrderByColumn(DatoEstudiantePeer::CEDULA);
	 	    $this->criteriaEstudiantesCondicion = $c1;

	 	}
	 	return $this->criteriaEstudiantesCondicion;
	 }



	function getNombre()
	{
		$estudiante = $this->getCedula();

		$c = new Criteria();
		$c->add(EstudiantePeer::CEDULA, $estudiante);
		$obj_estudiante = EstudiantePeer::doSelect($c);

		foreach ($obj_estudiante as $regestudiante)
		{
			if ($regestudiante){
				return $regestudiante->getNombre();
			}
			else {
				return 'NO ENCONTRADO';
			}
		}
	}

	function getApellido()
	{
		$estudiante = $this->getCedula();

		$c = new Criteria();
		$c->add(EstudiantePeer::CEDULA, $estudiante);
		$obj_estudiante = EstudiantePeer::doSelect($c);

		foreach ($obj_estudiante as $regestudiante)
		{
			if ($regestudiante){
				return $regestudiante->getApellido();
			}
			else {
				return 'NO ENCONTRADO';
			}
		}
	}

	function getFecnacusuario()
	{
		$estudiante = $this->getCedula();

		$c = new Criteria();
		$c->add(EstudiantePeer::CEDULA, $estudiante);
		$obj_estudiante = EstudiantePeer::doSelect($c);

		foreach ($obj_estudiante as $regestudiante)
		{
			if ($regestudiante){
				return $regestudiante->getFechaNacimiento();
			}
			else {
				return 'NO ENCONTRADO';
			}
		}
	}

	function getTelefonohab()
	{
		$estudiante = $this->getCedula();

		$c = new Criteria();
		$c->add(EstudiantePeer::CEDULA, $estudiante);
		$obj_estudiante = EstudiantePeer::doSelect($c);

		foreach ($obj_estudiante as $regestudiante)
		{
			if ($regestudiante){
				return $regestudiante->getTelefonoHabitacion();
			}
			else {
				return 'NO ENCONTRADO';
			}
		}
	}

	function getTelmovil()
	{
		$estudiante = $this->getCedula();

		$c = new Criteria();
		$c->add(EstudiantePeer::CEDULA, $estudiante);
		$obj_estudiante = EstudiantePeer::doSelect($c);

		foreach ($obj_estudiante as $regestudiante)
		{
			if ($regestudiante){
				return $regestudiante->getTelefonoCelular();
			}
			else {
				return 'NO ENCONTRADO';
			}
		}
	}

	public function getUsuario()
	{
		$cedula = $this->getCedula();
		$criterio = new Criteria();
		$criterio->add(DatoEstudiantePeer::CEDULA, $cedula);
		$criterio->addJoin(AteneausuarioPeer::ID, DatoEstudiantePeer::USUARIOATENEA_ID);
		$obj_ateneausuario = AteneausuarioPeer::doSelectOne($criterio);

		return $obj_ateneausuario;
	}

	public function getIdEstAspirante()
	{
		$cedula = $this->getCedula();
		$criterio = new Criteria();
		$criterio->add(DatoEstudiantePeer::CEDULA, $cedula);
		$criterio->addJoin(EstudianteAspirantePeer::USUARIO_ID, DatoEstudiantePeer::USUARIOATENEA_ID);
		$obj_estudianteaspirante = EstudianteAspirantePeer::doSelectOne($criterio);

		if($obj_estudianteaspirante)
		{
			print ' entro en if obj_datopersonal ';
			return $obj_estudianteaspirante->getId();
		}
		else
		{
			return 'create';
		}
	}


  public function getCondicion()
  {

  	    if($this->condicion == '')
   	    {
   	    //echo $this->getCedula();
  	    $c = new Criteria();
		$c->add(EstudiantePeer::CEDULA,$this->getCedula());
		$c->addJoin(EstudiantePeer::CP_ESTUDIANTE,MateriasEstudiantePeer::CF_ESTUDIANTE);
		$c->addDescendingOrderByColumn(MateriasEstudiantePeer::CONDICION);
		$objMat = MateriasEstudiantePeer::doSelectOne($c);

		$c1 = new Criteria();
		$c1->add(MateriaPeer::CP_MATERIA,$objMat->getCfMateria());
		$mat = MateriaPeer::doSelectOne($c1)->getNombre();
		$this->condicion = $mat.' - Condicion: '.$objMat->getCondicion();
  	    }

		return $this->condicion;

  }



}